package com.aliyun.heiyu.powermaster.server.rotary.dao;

import com.aliyun.heiyu.powermaster.server.dao.entity.EmailPropertiesConfig;
import com.aliyun.heiyu.powermaster.server.rotary.object.dto.AirInformationDTO;
import com.aliyun.heiyu.powermaster.server.rotary.object.dto.AirTypeDTO;
import com.aliyun.heiyu.powermaster.server.rotary.object.entity.AiDataEntity;
import com.aliyun.heiyu.powermaster.server.rotary.object.transit.ResTem;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * @Description 空调接口
 * @Author shun.zhang
 * @Date 2019/12/16 15:25
 **/
public interface AirDAO {
    /**
     * 获取空调信息
     *
     * @param airId
     * @param pointKey
     * @return List<AirInformationDTO>
     **/
    List<AirInformationDTO> getAirInformation(String airId, String pointKey);
    /**
     * 保存温度
     *
     * @param aiDataEntity
     * @return Integer
     **/
    Integer saveTemp(AiDataEntity aiDataEntity);
    /**
     * 获取modbus地址
     *
     * @param modbusType
     * @param modbusName
     * @return int
     **/
    int getModbusAddress(String modbusType, String modbusName);
    /**
     * 保存空调的动态数据
     *
     * @param resTem
     * @param deviceId
     * @param modbusType
     * @param modbusMaps
     * @return Integer
     **/
    Integer saveAirDataDynamic(ResTem resTem, String deviceId, String modbusType, Map<String, String> modbusMaps);

    /**
     * 获取系统机柜的所有类型
     * @return List<AirTypeDTO>
     */
    List<AirTypeDTO> getAirTypes();

    /**
     * 通过sn查询空调动态数据
     * @param sn
     * @return
     */
    Map<String,String> getAirDynamic(String sn);

    /**
     * 通过主键查询空调信息
     * @param sn
     * @return
     */
    AirInformationDTO getAirBySn(String sn);

    Boolean replaceInsert(Map<String, String> map, String tname) throws SQLException;

    /***
     * 查询告警配置数据
     */
    EmailPropertiesConfig getEmailPropertiesConfig(String sn);

    /**
     * 获取空调最新动态数据
     * @return
     */
    Map<String,String> getAirTemNew();

    /**
     * 获取最新的空调数据
     * @return
     */
    Map<String,String> getAirNew();
}
